package com.ldr.custom.spring.v3.beans;

import lombok.Data;

import java.lang.reflect.Field;
import java.util.List;

/**
 * 用来存储配置文件中的信息
 * 相当于保存在内存中的配置
 */
@Data
public class GPBeanDefinition {

    private String beanClassName;
    private boolean lazyInit = true;
    private String factoryBeanName;
    private boolean isSingleton = true;//默认是单例

    private List<String> dependentBean;

    public boolean isSingleton() {
        return this.isSingleton;
    }

    public void addDependentBean(Class<?> clazz) {
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {

            if (Object.class == field.getType()) {
                //字段是对象类型，有可能是Integer,Long
                //所有现在不是实例化操作，只是添加依赖类

                //强制访问
                field.setAccessible(true);
                dependentBean.add(field.getType().getName());
            }
        }
    }


    //    public void setBeanClassName(String beanClassName){
//
//    }
//
//
//    public String getBeanClassName(){
//        return null;
//    }
//
//    public void setFactoryBeanName(String factoryBeanName){
//
//    }
//
//
//    public String getFactoryBeanName(){
//        return null;
//    }
//
//
//    public void setLazyInit(){
//
//    }
//
//    public boolean isLazyInit(){
//        return false;
//    }

}
